package com.lyt.springboot.designPattern.templatePattern;

// 抽象类
abstract class Payment {

    // 模版方法，定义了支付算法的骨架
    final public void pay() {
        validatePaymentInfo(); // 验证支付信息
        executePayment();      // 执行支付
        logPayment();          // 记录支付日志
    }

    // 抽象方法，由子类实现
    protected abstract void validatePaymentInfo();

    // 抽象方法，由子类实现
    protected abstract void executePayment();

    // 具体方法，可以直接在父类中实现
    protected void logPayment() {
        System.out.println("Payment logged.");
    }
}